import type { Module, ActionContext } from 'vuex'
import type { AxiosResponse } from 'axios'
import type { templateStateType } from './typings'
import {
  templateListGet,
  templateListPost,
  templateUpdatePost,
  templateRemovePost
} from '~/api/system/template'

const work: Module<templateStateType, templateStateType> = {
  namespaced: true,
  state: {},
  getters: {},
  mutations: {},
  actions: {
    // 设备管理-列表
    async TemplateListGet<S, T>(_: ActionContext<S, T>, params: T) {
      return await templateListGet<T>(params).then((res: AxiosResponse) => res?.data)
    },
    // 添加设备管理-列表
    async TemplateListPost<S, T>(_: ActionContext<S, T>, params: T) {
      return await templateListPost<T>(params).then((res: AxiosResponse) => res?.data)
    },
    // 修改设备管理-列表
    async TemplateUpdatePost<S, T>(_: ActionContext<S, T>, params: T) {
      return await templateUpdatePost<T>(params).then((res: AxiosResponse) => res?.data)
    },
    // 删除设备管理-列表
    async TemplateRemovePost<S, T>(_: ActionContext<S, T>, params: T) {
      return await templateRemovePost<T>(params).then((res: AxiosResponse) => res?.data)
    }
  }
}

export default work
